package com.ai.zhly.task;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import com.ai.dmc.index.common.bean.FuncBean;
import com.ai.dmc.index.common.cache.DataTimeCache;
import com.ai.dmc.index.common.cache.UserRightCache;
import com.ai.dmc.index.common.util.DateUtil;

/**
 * @Description : 初始化系统参数任务
 * 
 * @author : wucm
 * @date : 2015年8月28日 上午11:16:10
 * @version V1.0
 * 
 */
public class UserRightTask  {
//	private static Logger logger = Logger.getLogger(UserRightTask.class);
//	private static boolean executeFlagUserRight = false;// 防止多次执行
//	private String database = "app";
//	private String tableName = "ai_table";
//
//	public void execute(JobExecutionContext arg0) throws JobExecutionException {
//		if (executeFlagUserRight) {
//			return;
//		}
//
//		// 检查数据是否有更新
//		if (!checkTime()) {
//			return;
//		}
//
//		executeFlagUserRight = true;
//
//		logger.debug("用户权限任务开始时间："
//				+ DateUtil.getInstance().getToday("yyyy-MM-dd hh:mm:ss"));
//
//		// 加载用户权限缓存
//		loadUserRigthCache();
//
//		logger.debug("用户权限任务结束时间："
//				+ DateUtil.getInstance().getToday("yyyy-MM-dd hh:mm:ss"));
//
//		executeFlagUserRight = false;
//	}
//
//	/**
//	 * 
//	 * @Description : 检查数据是否有更新
//	 * 
//	 * @return boolean
//	 * 
//	 * @author : wucm
//	 * @date : 2015年11月24日 下午7:05:10
//	 * 
//	 */
//	private boolean checkTime() {
//		boolean flag = true;
//
//		String curTime = (String) DataTimeCache.dataTimeCache.get(tableName);
//
//		String preTime = (String) UserRightCache.userRightCache
//				.get(UserRightCache.CACHE_TIME);
//
//		if (null != curTime && curTime.compareTo(preTime) <= 0) {
//			flag = false;
//		}
//
//		return flag;
//	}
//
//	/**
//	 * 
//	 * @Description : 加载用户权限缓存
//	 * 
//	 * @return void
//	 * 
//	 * @author : wucm
//	 * @date : 2015年11月8日 上午10:54:28
//	 * 
//	 */
//	@SuppressWarnings("unchecked")
//	private void loadUserRigthCache() {
//		// 加载func_page缓存
//		loadFuncPageUrl();
//
//		// 加载func_more缓存
//		loadFuncMoreUrl();
//
//		// 设置缓存刷新时间
//		String cacheTime = DateUtil.getInstance()
//				.getToday("yyyy-MM-dd HH:mm:ss");
//		UserRightCache.userRightCache.put(UserRightCache.CACHE_TIME, cacheTime);
//	}
//
//	/**
//	 * 
//	 * @Description : 加载func_page缓存
//	 * 
//	 * @return void
//	 * 
//	 * @author : wucm
//	 * @date : 2015年11月8日 上午10:56:11
//	 * 
//	 */
//	@SuppressWarnings({ "unchecked", "rawtypes" })
//	private void loadFuncPageUrl() {
//		Map m = new HashMap();
//		SqlMapClient sqlMap = null;
//		try {
//			sqlMap = IbatisFactory.getSqlMap(database);
//			sqlMap.startTransaction();
//
//			List<FuncBean> fList = sqlMap
//					.queryForList("login.queryAllUserFuncPageUrl", null);
//			if (null != fList && fList.size() > 0) {
//				for (FuncBean f : fList) {
//					String uId = f.getUserId();
//					String fId = f.getFuncId();
//					String fUrl = f.getFuncUrl();
//					m.put(uId + "$$" + fId, fId);
//					m.put(uId + "$$" + fUrl, fId);
//				}
//			}
//		} catch (Exception e) {
//			logger.error(e.toString());
//		} finally {
//			try {
//				if (sqlMap != null) {
//					sqlMap.endTransaction();
//				}
//			} catch (Exception e) {
//				logger.error(e.toString());
//			}
//		}
//
//		// 加载到缓存中
//		UserRightCache.userRightCache.put(UserRightCache.CACHE_TYPE_FUNC_PAGE,
//				m);
//	}
//
//	/**
//	 * 
//	 * @Description : 加载func_more缓存
//	 * 
//	 * @return void
//	 * 
//	 * @author : wucm
//	 * @date : 2015年11月8日 上午10:56:11
//	 * 
//	 */
//	@SuppressWarnings({ "unchecked", "rawtypes" })
//	private void loadFuncMoreUrl() {
//		Map m = new HashMap();
//		SqlMapClient sqlMap = null;
//		try {
//			sqlMap = IbatisFactory.getSqlMap(database);
//			sqlMap.startTransaction();
//
//			List<FuncBean> fList = sqlMap
//					.queryForList("login.queryAllUserFuncMoreUrl", null);
//			if (null != fList && fList.size() > 0) {
//				for (FuncBean f : fList) {
//					String uId = f.getUserId();
//					String fId = f.getFuncId();
//					String fUrl = f.getFuncUrl();
//					m.put(uId + "$$" + fId, fId);
//					m.put(uId + "$$" + fUrl, fId);
//				}
//			}
//		} catch (Exception e) {
//			logger.error(e.toString());
//		} finally {
//			try {
//				if (sqlMap != null) {
//					sqlMap.endTransaction();
//				}
//			} catch (Exception e) {
//				logger.error(e.toString());
//			}
//		}
//
//		// 加载到缓存中
//		UserRightCache.userRightCache.put(UserRightCache.CACHE_TYPE_FUNC_MORE,
//				m);
//	}
}
